#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct student
{
	char name[100], ban[10];
	int c, maths, english, sum, num;

}stu[100];


int n;//学生数量


void menu()//菜单
{
	printf("————————————————————————————————————————\n");
	printf("————欢迎使用学生成绩管理信息系统————————\n");
	printf("————————————————————————————————————————\n");
	printf("——           1.录入学生信息           ——\n");
	printf("——           2.输出所有学生信息       ——\n");
	printf("——           3.查询单个学生信息       ——\n");
	printf("——           4.修改学生信息           ——\n");
	printf("——           5.删除学生信息           ——\n");
	printf("——           6.添加学生信息           ——\n");
	printf("——           7.排序学生成绩           ——\n");
	printf("——           0.退出系统               ——\n");
	printf("————————————————————————————————————————\n");
	printf("————————————————————————————————————————\n");
	printf("————————————————————————————————————————\n");
}
void input()//信息的录入
{
	system("cls");
	int i, j = 1;
	printf("请输入总学生数量>>");
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		printf(" 输入第%d个学生相关信息\n", j++);
		printf("输入姓名\n");
		scanf("%s", stu[i].name);
		getchar();
		printf("输入学号\n");
		scanf("%d", &stu[i].num);
		printf("输入班级\n");
		scanf("%s", stu[i].ban);
		printf("输入c语言成绩\n");
		scanf("%d", &stu[i].c);
		printf("输入高数成绩\n");
		scanf("%d", &stu[i].maths);
		printf("输入大学英语成绩\n");
		scanf("%d", &stu[i].english);
		stu[i].sum = stu[i].c + stu[i].maths + stu[i].english;
		printf("该学生的总成绩:%d\n", stu[i].sum);
	}
}
void output()//输出所有学生信息
{
	system("cls");
	int i;
	printf("录入学生的信息如下\n");
	if (n == 0)printf(" 无\n");
	else for (i = 1; i <= n; i++)
	{
		printf("名字：%2s\n", stu[i].name);
		printf("学号：%2d\n", stu[i].num);
		printf("班级：%2s\n", stu[i].ban);
		printf("c语言成绩：%2d\n", stu[i].c);
		printf("高数成绩：%2d\n", stu[i].maths);
		printf("英语成绩：%2d\n", stu[i].english);
		stu[i].sum = stu[i].c + stu[i].maths + stu[i].english;
		printf("该学生的总成绩:%d\n", stu[i].sum);
	}

}
void query()//查询
{
	system("cls");
	int num, i, t;
	char a[20], k;
	if (n != 0)
	{
		printf("输入您要查找的学生\n");
		scanf("%s", a);
		for (i = 1; i <= n; i++)
		{
			k = strcmp(stu[i].name, a);
			if (k == 0)
			{
				printf("名字：%s\n", stu[i].name);
				printf("学号：%d\n", stu[i].num);
				printf("班级：%s\n", stu[i].ban);
				printf("c语言成绩：%d\n", stu[i].c);
				printf("高数成绩：%d\n", stu[i].maths);
				printf("英语成绩：%d\n", stu[i].english);
				stu[i].sum = stu[i].c + stu[i].maths + stu[i].english;
				printf("该学生的总成绩:%d\n", stu[i].sum);
				break;

			}
		}
		if (i > n)
			printf("您查找的信息不存在\n");
	}
	else printf("不存在\n");



}
void modify()//修改
{
	system("cls");
	int num;
	int i = 0;
	printf("输入您要修改的学生的学号\n");
	scanf("%d", &num);
	if (n == 0) printf("这里没有信息\n");
	else
	{
	flag:
		if (i < n)
		{
			i++;
			if (stu[i].num == num)
			{
				printf("您要修改的学生信息为\n");
				printf("名字：%s\n", stu[i].name);
				printf("学号：%d\n", stu[i].num);
				printf("班级：%s\n", stu[i].ban);
				printf("c语言成绩：%d\n", stu[i].c);
				printf("高数成绩：%d\n", stu[i].maths);
				printf("英语成绩：%d\n", stu[i].english);
				stu[i].sum = stu[i].c + stu[i].maths + stu[i].english;
				printf("该学生的总成绩:%d\n", stu[i].sum);
				printf("\n");
			}
			goto flag;
		}

		if (i > n) printf("您查找的信息不存在\n");
		else
		{
			printf("输入姓名\n");
			scanf("%s", stu[i].name);
			getchar();
			printf("输入学号\n");
			scanf("%d", &stu[i].num);
			printf("输入班级\n");
			scanf("%s", stu[i].ban);
			printf("输入c语言成绩\n");
			scanf("%d", &stu[i].c);
			printf("输入高数成绩\n");
			scanf("%d", &stu[i].maths);
			printf("输入大学英语成绩\n");
			scanf("%d", &stu[i].english);
		}
	}
}
void del()//删除
{
	system("cls");
	int i, j, e, num;
	if (n != 0)
	{
		printf("请输入您要删除的学生的学号:");
		scanf("%d", &num);
		for (i = 1; i <= n; i++)
			if (stu[i].num == num)
			{
				j = i;
				for (e = i - 1; e < n; e++, j++)
				{
					strcpy(stu[j].name, stu[j + 1].name);
					stu[j].num = stu[j + 1].num;
					strcpy(stu[j].ban, stu[j + 1].ban);
					stu[j].c = stu[j + 1].c;
					stu[j].maths = stu[j + 1].maths;
					stu[j].english = stu[j + 1].english;
					n--;
				}
			}printf("该学生信息已删除或不存在\n");

	}
	else printf("对不起，这里没有学生信息\n");




}
void add()//插入
{
	int i, j, t;
	if (n != 0)
	{
		j = n;
		printf("要插入学生相关信息\n");
		printf("输入姓名\n");
		scanf("%s", stu[j + 1].name);
		getchar();
		printf("输入学号\n");
		scanf("%d", &stu[j + 1].num);
		printf("输入班级\n");
		scanf("%s", stu[j + 1].ban);
		printf("输入c语言成绩\n");
		scanf("%d", &stu[j + 1].c);
		printf("输入高数成绩\n");
		scanf("%d", &stu[j + 1].maths);
		printf("输入英语成绩\n");
		scanf("%d", &stu[j + 1].english);
		strcpy(stu[j + 2].name, stu[j + 1].name);
		stu[j + 2].num = stu[j + 1].num;
		strcpy(stu[j + 2].ban, stu[j + 1].ban);
		stu[j + 2].c = stu[j + 1].c;
		stu[j + 2].maths = stu[j + 1].maths;
		stu[j + 2].english = stu[j + 1].english;
		printf("  该学生信息已经插入\n");
		n++;
	}
	else {
		i = 1; printf("请输入要插入学生的相关信息\n");
		printf("输入姓名\n");
		scanf("%s", stu[i].name);
		getchar();
		printf("输入学号\n");
		scanf("%d", &stu[i].num);
		printf("输入班级\n");
		scanf("%s", stu[i].ban);
		printf("输入c语言成绩\n");
		scanf("%d", &stu[i].c);
		printf("输入高数成绩\n");
		scanf("%d", &stu[i].maths);
		printf("输入英语成绩\n");
		scanf("%d", &stu[i].english);
		n++;

	}

}
void sequence()//排序
{
	system("cls");
	int i, j, t;
	if (n != 0)
	{
		for (i = 1; i <= n; i++)
			for (j = 1; j < n; j++)
			{
				if (stu[j].sum < stu[j + 1].sum)
				{
					t = stu[j].sum;
					stu[j].sum = stu[j + 1].sum;
					stu[j + 1].sum = t;
				}
			}
		for (i = 1; i <= n; i++)
		{
			printf("名字：%s\n", stu[i].name);
			printf("学号：%d\n", stu[i].num);
			printf("班级：%s\n", stu[i].ban);
			printf("c语言：%d\n", stu[i].c);
			printf("高数：%d\n", stu[i].maths);
			printf("总成绩：%d\n", stu[i].sum);
		}
	}
	else printf(" 这里没有信息\n");
}
void intmain()
{
	int a, b = 1;
	while (b)
	{
		menu();
		printf("您选择的是: ");
		scanf("%d", &a);
		printf("\n");
		switch (a)
		{
		case 1:input(); break;//输入
		case 2:output(); break;//输出
		case 3:query(); break;//查找
		case 4:modify(); break;//修改
		case 5:del(); break;//删除
		case 6:add(); break;//添加
		case 7:sequence(); break;//排序
		case 0:b = 0; break;//退出
		}
	}
	printf(" 系统已退出\n");
}
int main()
{
	int password;
	int a = 666;
	int i, j = 0;
	for (i = 0; i < 3; i++)
	{
		printf("请输入密码（密码666）:");
		scanf("%d", &password);
		if (password == a)
		{
			break;
		}
		else
		{
			printf("密码错误，请重新输入\n");
			int b = 3 - i;
			printf("你的可用次数为%d\n", b);
		}
	}
	if (i == 3)
		printf("输入次数用完,登入失败\n");
	else
	{
		printf("登陆成功\n");
		intmain();
	}
	return 0;
}